/**
 * FileName: MyInterceptor
 * Author:   秋水浮萍
 * Date:     2020/8/23 19:29
 * Description: 拦截器
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.demo.aspect;

import com.demo.service.SysLogService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.stereotype.Component;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;

/**
 * 〈一句话功能简述〉<br>
 * 〈拦截器〉
 * 此类为一个切面类，主要作用就是对接口的请求进行拦截
 * 拦截的方式，只需要在指定接口方法上面加上@MyLog注解即可
 *
 * @author 秋水浮萍
 * @create 2020/8/23
 * @since 1.0.0
 */
@Aspect
@Component
@Slf4j
public class SysLogsAspect {

    @Autowired
    private SysLogService sysLogService;


    private static HashMap<String, Class> map = new HashMap<String, Class>() {
        {
            put("java.lang.Integer", int.class);
            put("java.lang.Double", double.class);
            put("java.lang.Float", float.class);
            put("java.lang.Long", long.class);
            put("java.lang.Short", short.class);
            put("java.lang.Boolean", boolean.class);
            put("java.lang.Char", char.class);
        }
    };

    //返回方法的参数名
    private static String[] getFieldsName(JoinPoint joinPoint) throws ClassNotFoundException, NoSuchMethodException {
        String classType = joinPoint.getTarget().getClass().getName();
        String methodName = joinPoint.getSignature().getName();
        Object[] args = joinPoint.getArgs();
        Class<?>[] classes = new Class[args.length];
        for (int k = 0; k < args.length; k++) {
            if (!args[k].getClass().isPrimitive()) {
                //获取的是封装类型而不是基础类型
                String result = args[k].getClass().getName();
                Class s = map.get(result);
                classes[k] = s == null ? args[k].getClass() : s;
            }
        }
        ParameterNameDiscoverer pnd = new DefaultParameterNameDiscoverer();
        //获取指定的方法，第二个参数可以不传，但是为了防止有重载的现象，还是需要传入参数的类型
        Method method = Class.forName(classType).getMethod(methodName, classes);
        String[] parameterNames = pnd.getParameterNames(method);
        return parameterNames;
    }

    private static String[] types = {"java.lang.Integer", "java.lang.Double",
            "java.lang.Float", "java.lang.Long", "java.lang.Short",
            "java.lang.Byte", "java.lang.Boolean", "java.lang.Char",
            "java.lang.String", "int", "double", "long", "short", "byte",
            "boolean", "char", "float"};

    public static String getParamValue(JoinPoint joinPoint) {
        StringBuilder sb = new StringBuilder();
//获取所有的参数
        Object[] args = joinPoint.getArgs();
        for (int k = 0; k < args.length; k++) {
            Object arg = args[k];
            // 获取对象类型
            String typeName = arg.getClass().getTypeName();
            for (String t : types) {
                //1 判断是否是基础类型
                if (t.equals(typeName)) {
                    sb.append(arg + "; ");
                } else {
                    //2 通过反射获取实体类属性
                    sb.append(getFieldsValue(arg));
                }
            }
        }
        return "";
    }

    //解析实体类，获取实体类中的属性
    public static String getFieldsValue(Object obj) {
        //通过反射获取所有的字段，getFileds()获取public的修饰的字段
        //getDeclaredFields获取private protected public修饰的字段
        Field[] fields = obj.getClass().getDeclaredFields();
        String typeName = obj.getClass().getTypeName();
        for (String t : types) {
            if (t.equals(typeName)) {
                return "";
            }
        }
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        for (Field f : fields) {
            //在反射时能访问私有变量
            f.setAccessible(true);
            try {
                for (String str : types) {
                    //这边会有问题，如果实体类里面继续包含实体类，这边就没法获取。
                    //其实，我们可以通递归的方式去处理实体类包含实体类的问题。
                    if (f.getType().getName().equals(str)) {
                        sb.append(f.getName() + " : " + f.get(obj) + ", ");
                    }
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        sb.append("}");
        return sb.toString();
    }


    //定义切点 @Pointcut
    //在注解的位置切入代码
    @Pointcut("@annotation( com.demo.anno.MyLog)")
    public void logPoinCut() {
    }

    //切面 配置通知
//    @AfterReturning("logPoinCut()")
//    public void saveSysLog(JoinPoint joinPoint) {
//        System.out.println("切面。。。。。");
//        //保存日志
//        SysLog sysLog = new SysLog();
//
//        //从切面织入点处通过反射机制获取织入点处的方法
//        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
//        //获取切入点所在的方法
//        Method method = signature.getMethod();
//        //获取所有的参数
//        //Object[] args = joinPoint.getArgs();
//        //获取操作
//        MyLog myLog = method.getAnnotation(MyLog.class);
//        if (myLog != null) {
//            String value = myLog.value();
//            //内容
//            sysLog.setOperate(value);//保存获取的操作
//        }
//
//
//        //被拦截的方法的参数值对象数组，这里我们将传入的参数转为json字符串格式便于存入数据库
//        Object[] objects = joinPoint.getArgs();
//        for (int i = 0; i < objects.length; i++) {
//            String s = JSON.toJSONString(objects[i]);
//            if (i == objects.length - 1) {
//                sysLog.setMsg(s);
//            } else {
//                sysLog.setMsg(s);
//            }
//        }
//        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
//        AuthUserDetail detail = (AuthUserDetail) authentication.getDetails();
//        sysLog.setUserId(detail.getUserId());
//        //创建时间
//        sysLog.setCreateTime(new Date());
//
//
//        StringBuilder sb = new StringBuilder();
////获取所有的参数
//        Object[] args = joinPoint.getArgs();
//        if ("添加".equals(sysLog.getOperate().subSequence(0, 2))) {
//            if ("添加债权基本信息".equals(sysLog.getOperate())) {
//                BusClaims claims = (BusClaims) args[1];
//                sysLog.setClaimsNumber(claims.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "借款人 "
//                        + claims.getBorrowers());
//            } else if ("添加房抵贷信息".equals(sysLog.getOperate())) {
//                BusMortgage claims = (BusMortgage) args[1];
//                sysLog.setClaimsNumber(claims.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "借款人 "
//                        + claims.getBorrowers());
//            } else if ("添加物权信息".equals(sysLog.getOperate())) {
//                BusProrig claims = (BusProrig) args[1];
//                if (claims.getOwner() == null) claims.setOwner("");
//                sysLog.setClaimsNumber(claims.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "所有权人 " +
//                        claims.getOwner());
//            } else if ("添加借款合同".equals(sysLog.getOperate())) {
//                BusClaimsBorrow borrow = (BusClaimsBorrow) args[1];
//                sysLog.setClaimsNumber(borrow.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "合同编号 " +
//                        borrow.getContNum());
//            } else if ("添加保证人合同".equals(sysLog.getOperate())) {
//                BusClaimsGuarantor guarantor = (BusClaimsGuarantor) args[1];
//                sysLog.setClaimsNumber(guarantor.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        guarantor.getContractNum());
//            } else if ("添加抵质押物合同".equals(sysLog.getOperate())) {
//                BusCollateralContract contract = (BusCollateralContract) args[1];
//                sysLog.setClaimsNumber(contract.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        contract.getCollateralNumber());
//            } else if ("添加抵质押物基本信息".equals(sysLog.getOperate())) {
//                BusClaimsCollateral collateral = (BusClaimsCollateral) args[1];
//                sysLog.setClaimsNumber(collateral.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "抵质押物编号 " +
//                        collateral.getCollId());
//            } else if ("添加亮点信息".equals(sysLog.getOperate())) {
//                BusClaimsLight light = (BusClaimsLight) args[1];
//                sysLog.setClaimsNumber(light.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "亮点描述 " +
//                        light.getDescribes());
//            } else if ("添加抵质押物房产信息".equals(sysLog.getOperate())) {
//                BusCollateralProperty property = (BusCollateralProperty) args[1];
//
//                String claimsNumber = sysLogService.claimsNumber(property.getCollateralId());
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ": " + "抵质押物编号 " + property.getCollateralId() + "," +
//                        "产证号 " + property.getHouseProdu());
//            } else if ("添加抵质押物土地信息".equals(sysLog.getOperate())) {
//                BusCollateralLand land = (BusCollateralLand) args[1];
//                String claimsNumber = sysLogService.claimsNumber(land.getCollateralId());
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ":" + "抵质押物编号" + land.getCollateralId() + "," +
//                        "产证号 " + land.getLandProdu());
//            } else if ("添加司法信息".equals(sysLog.getOperate())) {
//                BusJudicial judicial = (BusJudicial) args[0];
//                if (judicial.getJudicialState() != null && !"".equals(judicial.getJudicialState())) {
//                    judicial.setJudicialState(BusTypeController.vuleMap.get("judicialList").get(judicial.getJudicialState()));
//                }
//                sysLog.setClaimsNumber(judicial.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "司法阶段 " +
//                        judicial.getJudicialState());
//            } else if ("添加招商管理信息".equals(sysLog.getOperate())) {
//                BusMerchant merchant = (BusMerchant) args[0];
//                sysLog.setClaimsNumber(merchant.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "意向客户 " +
//                        merchant.getIntentClient());
//            } else if ("添加瑕疵信息".equals(sysLog.getOperate())) {
//                BusDefect defect = (BusDefect) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "瑕疵描述 " + defect.getDescribes());
//            } else if ("添加财产线索".equals(sysLog.getOperate())) {
//                BusAssetClue clue = (BusAssetClue) args[0];
//                sysLog.setClaimsNumber(clue.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "资产所有人 " +
//                        clue.getAssetOwner());
//            } else if ("添加催收信息".equals(sysLog.getOperate())) {
//                BusCollect defect = (BusCollect) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "被催受人 " +
//                        defect.getReminder());
//            } else if ("添加退出预案".equals(sysLog.getOperate())) {
//                BusExits defect = (BusExits) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "详细方案描述 " +
//                        defect.getSchemeDescirpt());
//            } else if ("添加估值信息".equals(sysLog.getOperate())) {
//                BusAssetsValue defect = (BusAssetsValue) args[0];
//                String valueType = "";
//                if (defect.getMortgageType() != null) {
//                    if ("01".equals(defect.getMortgageType())) {
//                        valueType = "房产估值";
//                    } else if ("02".equals(defect.getMortgageType())) {
//                        valueType = "土地估值";
//                    } else if ("04".equals(defect.getMortgageType())) {
//                        valueType = "质押物估值";
//                    }
//                }
//                String claimsNumber = sysLogService.claimsNumber(defect.getCollateralId());
//
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ": " +
//                        "抵质押物编号 " + defect.getCollateralId() + "," + "估值类型 " + valueType);
//            } else if ("添加保证人估值".equals(sysLog.getOperate())) {
//                BusGuarantorValue defect = (BusGuarantorValue) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//            } else if ("添加保证人信息".equals(sysLog.getOperate())) {
//                BusContractLegal legal = (BusContractLegal) args[0];
//                sysLog.setClaimsNumber(legal.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "法定代表人或自然人 " +
//                        legal.getCorporateRepresent());
//            }
//        } else if ("更新".equals(sysLog.getOperate().subSequence(0, 2))) {
//            if ("更新债权基本信息".equals(sysLog.getOperate())) {
//                BusClaims claims = (BusClaims) args[0];
//                sysLog.setClaimsNumber(claims.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "借款人 "
//                        + claims.getBorrowers());
//            } else if ("更新房抵贷信息".equals(sysLog.getOperate())) {
//                BusMortgage borrow = (BusMortgage) args[0];
//                sysLog.setClaimsNumber(borrow.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "借款人 "
//                        + borrow.getBorrowers());
//            } else if ("更新物权信息".equals(sysLog.getOperate())) {
//                BusProrig borrow = (BusProrig) args[0];
//                sysLog.setClaimsNumber(borrow.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "所有权人 " +
//                        borrow.getOwner());
//            } else if ("更新借款合同".equals(sysLog.getOperate())) {
//                BusClaimsBorrow borrow = (BusClaimsBorrow) args[1];
//                sysLog.setClaimsNumber(borrow.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "合同编号 " +
//                        borrow.getContNum());
//            } else if ("更新保证人合同".equals(sysLog.getOperate())) {
//                BusClaimsGuarantor guarantor = (BusClaimsGuarantor) args[0];
//                sysLog.setClaimsNumber(guarantor.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        guarantor.getContractNum());
//            } else if ("更新抵质押物合同".equals(sysLog.getOperate())) {
//                BusCollateralContract contract = (BusCollateralContract) args[0];
//                sysLog.setClaimsNumber(contract.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        contract.getCollateralNumber());
//            } else if ("更新抵质押物基本信息".equals(sysLog.getOperate())) {
//                BusClaimsCollateral collateral = (BusClaimsCollateral) args[0];
//                sysLog.setClaimsNumber(collateral.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "抵质押物编号 " +
//                        collateral.getCollId());
//            } else if ("更新亮点信息".equals(sysLog.getOperate())) {
//                BusClaimsLight light = (BusClaimsLight) args[0];
//                sysLog.setClaimsNumber(light.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "亮点描述 " +
//                        light.getDescribes());
//            } else if ("更新抵质押物房产信息".equals(sysLog.getOperate())) {
//                BusCollateralProperty property = (BusCollateralProperty) args[0];
//
//                String claimsNumber = sysLogService.claimsNumber(property.getCollateralId());
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ": " + "抵质押物编号 " + property.getCollateralId() + "," +
//                        "产证号 " + property.getHouseProdu());
//            } else if ("更新抵质押物土地信息".equals(sysLog.getOperate())) {
//                BusCollateralLand land = (BusCollateralLand) args[0];
//                String claimsNumber = sysLogService.claimsNumber(land.getCollateralId());
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ":" + "抵质押物编号" + land.getCollateralId() + "," +
//                        "产证号 " + land.getLandProdu());
//            } else if ("更新司法信息".equals(sysLog.getOperate())) {
//                BusJudicial judicial = (BusJudicial) args[0];
//                if (judicial.getJudicialState() != null && !"".equals(judicial.getJudicialState())) {
//                    judicial.setJudicialState(BusTypeController.vuleMap.get("judicialList").get(judicial.getJudicialState()));
//                }
//                sysLog.setClaimsNumber(judicial.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "司法阶段 " +
//                        judicial.getJudicialState());
//            } else if ("更新招商管理信息".equals(sysLog.getOperate())) {
//                BusMerchant merchant = (BusMerchant) args[0];
//                sysLog.setClaimsNumber(merchant.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "意向客户 " +
//                        merchant.getIntentClient());
//            } else if ("更新瑕疵信息".equals(sysLog.getOperate())) {
//                BusDefect defect = (BusDefect) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "瑕疵描述 " + defect.getDescribes());
//            } else if ("更新财产线索".equals(sysLog.getOperate())) {
//                BusAssetClue clue = (BusAssetClue) args[0];
//                sysLog.setClaimsNumber(clue.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "资产所有人 " +
//                        clue.getAssetOwner());
//            } else if ("更新催收信息".equals(sysLog.getOperate())) {
//                BusCollect defect = (BusCollect) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "被催受人 " +
//                        defect.getReminder());
//            } else if ("更新退出预案".equals(sysLog.getOperate())) {
//                BusExits defect = (BusExits) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "详细方案描述 " +
//                        defect.getSchemeDescirpt());
//            } else if ("更新估值信息".equals(sysLog.getOperate())) {
//                BusAssetsValue defect = (BusAssetsValue) args[0];
//                String valueType = "";
//                if (defect.getMortgageType() != null) {
//                    if ("01".equals(defect.getMortgageType())) {
//                        valueType = "房产估值";
//                    } else if ("02".equals(defect.getMortgageType())) {
//                        valueType = "土地估值";
//                    } else if ("04".equals(defect.getMortgageType())) {
//                        valueType = "质押物估值";
//                    }
//                }
//                String claimsNumber = sysLogService.claimsNumber(defect.getCollateralId());
//
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ": " +
//                        "抵质押物编号 " + defect.getCollateralId() + "," + "估值类型 " + valueType);
//            } else if ("更新保证人估值".equals(sysLog.getOperate())) {
//                BusGuarantorValue defect = (BusGuarantorValue) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//            } else if ("更新保证人信息".equals(sysLog.getOperate())) {
//                BusContractLegal defect = (BusContractLegal) args[0];
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "法定代表人或自然人 " +
//                        defect.getCorporateRepresent());
//
//            } else if ("更新评估信息".equals(sysLog.getOperate())) {
//                String claimsNumber = (String) args[0];
//                String v = (String) args[1];
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(v + ":" + "标的编号" + sysLog.getClaimsNumber());
//            } else if ("更新尽调信息".equals(sysLog.getOperate())) {
//                String claimsNumber = (String) args[0];
//                String v = (String) args[1];
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(v + ":" + "标的编号" + sysLog.getClaimsNumber());
//            }
//        } else if ("删除".equals(sysLog.getOperate().subSequence(0, 2))) {
//            if ("删除债权基本信息".equals(sysLog.getOperate())) {
//                String claimsNumber = (String) args[0];
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ":" + "标的编号" + sysLog.getClaimsNumber() + ","
//                );
//            } else if ("删除房抵贷信息".equals(sysLog.getOperate())) {
//                String claimsNumber = (String) args[0];
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ":" + "标的编号" + sysLog.getClaimsNumber() + ","
//                );
//            } else if ("删除物权信息".equals(sysLog.getOperate())) {
//                String claimsNumber = (String) args[0];
//                sysLog.setClaimsNumber(claimsNumber);
//                sysLog.setOperate(sysLog.getOperate() + ":" + "标的编号" + sysLog.getClaimsNumber() + ","
//                );
//            } else if ("删除借款合同".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusClaimsBorrow borrow = sysLogService.claimsNumberBor(id);
//                sysLog.setClaimsNumber(borrow.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "合同编号 " +
//                        borrow.getContNum());
//            } else if ("删除保证人合同".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusClaimsGuarantor guarantor = sysLogService.claimsNumberGur(id);
//                sysLog.setClaimsNumber(guarantor.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        guarantor.getContractNum());
//            } else if ("删除抵质押物合同".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusCollateralContract contract = sysLogService.claimsNumberContract(id);
//                sysLog.setClaimsNumber(contract.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "合同编号 " +
//                        contract.getCollateralNumber());
//            } else if ("删除抵质押物基本信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusClaimsCollateral collateral = sysLogService.claimsNumberCollateral(id);
//                sysLog.setClaimsNumber(collateral.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "抵质押物编号 " +
//                        collateral.getCollId());
//            } else if ("删除亮点信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusClaimsLight light = sysLogService.claimsNumberLight(id);
//                sysLog.setClaimsNumber(light.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "亮点描述 " +
//                        light.getDescribes());
//            } else if ("删除财产线索".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusAssetClue clue = sysLogService.claimsNumberClue(id);
//                sysLog.setClaimsNumber(clue.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "资产所有人 " +
//                        clue.getAssetOwner());
//            } else if ("删除催收信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//
//                BusCollect defect = sysLogService.claimsNumberCollect(id);
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "被催受人 " +
//                        defect.getReminder());
//            } else if ("删除保证人信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//
//                BusContractLegal defect = sysLogService.claimsNumberLe(id);
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ":" + "法定代表人或自然人 " +
//                        defect.getCorporateRepresent());
//            } else if ("删除瑕疵信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusDefect defect = sysLogService.claimsNumberDefect(id);
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "瑕疵描述 " + defect.getDescribes());
//
//            } else if ("删除退出预案".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusExits defect = sysLogService.claimsNumberExit(id);
//                sysLog.setClaimsNumber(defect.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "详细方案描述 " +
//                        defect.getSchemeDescirpt());
//            } else if ("删除司法信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusJudicial judicial = sysLogService.claimsNumberJu(id);
//                if (judicial.getJudicialState() != null && !"".equals(judicial.getJudicialState())) {
//                    judicial.setJudicialState(BusTypeController.vuleMap.get("judicialList").get(judicial.getJudicialState()));
//                }
//                sysLog.setClaimsNumber(judicial.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "司法阶段 " +
//                        judicial.getJudicialState());
//            } else if ("删除招商管理信息".equals(sysLog.getOperate())) {
//                String id = (String) args[0];
//                BusMerchant merchant = sysLogService.claimsNumberMerchant(id);
//                sysLog.setClaimsNumber(merchant.getClaimsNumber());
//                sysLog.setOperate(sysLog.getOperate() + ": " + "意向客户 " +
//                        merchant.getIntentClient());
//            }
//        }
//        for (int k = 0; k < args.length; k++) {
//            Object arg = args[k];
//            // 获取对象类型
//            String typeName = arg.getClass().getTypeName();
//            for (String t : types) {
//                //1 判断是否是基础类型
//                if (t.equals(typeName)) {
//                    sb.append(arg + "; ");
//                } else {
//                    //2 通过反射获取实体类属性
//                    sb.append(getFieldsValue(arg));
//                }
//            }
//        }
//        //调用service保存SysLog实体类到数据库
//        sysLogService.add(sysLog);
//    }


}